[INFO] cloning repository https://github.com/andrewkwatts-maker/SlapPy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andrewkwatts-maker/SlapPy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrewkwatts-maker%2FSlapPy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrewkwatts-maker%2FSlapPy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b8bf95b2bfe2515dcedc74d54998a70d14d26632
[INFO] fixing andrewkwatts-maker/SlapPy against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrewkwatts-maker%2FSlapPy" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/andrewkwatts-maker/SlapPy
[INFO] finished tweaking git repo https://github.com/andrewkwatts-maker/SlapPy
[INFO] tweaked toml for git repo https://github.com/andrewkwatts-maker/SlapPy written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/andrewkwatts-maker/SlapPy on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/andrewkwatts-maker/SlapPy already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c78efb96e5cedfde69b7a0e7eb9afa8288a224dd51bd4230a61fb8efed0ee4c8
[INFO] running `Command { std: "docker" "start" "c78efb96e5cedfde69b7a0e7eb9afa8288a224dd51bd4230a61fb8efed0ee4c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c78efb96e5cedfde69b7a0e7eb9afa8288a224dd51bd4230a61fb8efed0ee4c8" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c78efb96e5cedfde69b7a0e7eb9afa8288a224dd51bd4230a61fb8efed0ee4c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c78efb96e5cedfde69b7a0e7eb9afa8288a224dd51bd4230a61fb8efed0ee4c8" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling pyo3-build-config v0.22.6
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling lz4-sys v1.11.1+lz4-1.10.0
[INFO] [stderr]    Compiling pyo3-macros-backend v0.22.6
[INFO] [stderr]    Compiling pyo3-ffi v0.22.6
[INFO] [stderr]    Compiling pyo3 v0.22.6
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling pyo3-macros v0.22.6
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking lz4 v1.28.1
[INFO] [stderr]     Checking slappyengine v0.3.0-alpha.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `_core`
[INFO] [stderr]  --> src/hull.rs
[INFO] [stderr]  ::: src/ik_solver.rs
[INFO] [stderr]  ::: src/math.rs
[INFO] [stderr]  ::: src/math_3d.rs
[INFO] [stderr]  ::: src/node_compiler.rs
[INFO] [stderr]  ::: src/physics.rs
[INFO] [stderr]  ::: src/sdf.rs
[INFO] [stderr]  ::: src/sdf_collision.rs
[INFO] [stderr]  ::: src/slap_format.rs
[INFO] [stderr]  ::: src/struct_layout.rs
[INFO] [stderr]  ::: src/tile_cache.rs
[INFO] [stderr]   = cause: error: expected item, found `{`
[INFO] [stderr]              --> src/math.rs:12:1
[INFO] [stderr]               |
[INFO] [stderr]            12 | { unsafe #[pymethods]}
[INFO] [stderr]               | ^ expected item
[INFO] [stderr]               |
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stderr]              --> src/tile_cache.rs:11:1
[INFO] [stderr]               |
[INFO] [stderr]            11 | { unsafe #[pymethods]}
[INFO] [stderr]               | ^ expected item
[INFO] [stderr]               |
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stderr]              --> src/math_3d.rs:20:5
[INFO] [stderr]               |
[INFO] [stderr]            20 |     { unsafe #[pymethods]}
[INFO] [stderr]               |     ^ expected item
[INFO] [stderr]               |
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stderr]              --> src/sdf.rs:75:5
[INFO] [stderr]               |
[INFO] [stderr]            75 |     { unsafe #[pymethods]}
[INFO] [stderr]               |     ^ expected item
[INFO] [stderr]               |
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stderr]               --> src/physics.rs:101:5
[INFO] [stderr]                |
[INFO] [stderr]            101 |     { unsafe #[pymethods]}
[INFO] [stderr]                |     ^ expected item
[INFO] [stderr]                |
[INFO] [stderr]                = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stderr]               --> src/sdf_collision.rs:257:5
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/hull.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convex_hull(points: Vec<(f32, f32)>) -> PyResult<Vec<(f32, f32)>> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]   = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn bounding_box(points: Vec<(f32, f32)>) -> PyResult<(f32, f32, f32, f32)> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            257 |     { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pixel_data: Vec<f32>,
[INFO] [stdout]    |                 ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |     ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pixel_count: usize,
[INFO] [stdout]    |                  ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |     stride_floats: usize,
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |     channel_offset_f32: usize,
[INFO] [stdout]    |                         ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 |     threshold: f32,
[INFO] [stdout]    |                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     width: usize,
[INFO] [stdout]    |            ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |     chain_positions: Vec<(f32, f32)>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             --> src/hull.rs:6:28
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     target: (f32, f32),
[INFO] [stdout]    |             ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |     lengths: Vec<f32>,
[INFO] [stdout]    |              ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            6 | pub fn convex_hull(points: Vec<(f32, f32)>) -> PyResult<Vec<(f32, f32)>> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/ik_solver.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn compute_bone_lengths(positions: Vec<(f32, f32)>) -> Vec<f32> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |                            ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn __add__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn __sub__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn __mul__(&self, scalar: f32) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:53:29
[INFO] [stderr]               |
[INFO] [stderr]            53 | pub fn bounding_box(points: Vec<(f32, f32)>) -> PyResult<(f32, f32, f32, f32)> {
[INFO] [stderr]               |                             ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:92:17
[INFO] [stderr]               |
[INFO] [stderr]            92 |     pixel_data: Vec<f32>,
[INFO] [stderr]               |                 ^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:93:18
[INFO] [stderr]               |
[INFO] [stderr]            93 |     pixel_count: usize,
[INFO] [stderr]               |                  ^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:94:20
[INFO] [stderr]               |
[INFO] [stderr]            94 |     stride_floats: usize,
[INFO] [stderr]               |                    ^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:95:25
[INFO] [stderr]               |
[INFO] [stderr]            95 |     channel_offset_f32: usize,
[INFO] [stderr]               |                         ^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:96:16
[INFO] [stderr]               |
[INFO] [stderr]            96 |     threshold: f32,
[INFO] [stderr]               |                ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/hull.rs:97:12
[INFO] [stderr]               |
[INFO] [stderr]            97 |     width: usize,
[INFO] [stderr]               |            ^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/ik_solver.rs:59:22
[INFO] [stderr]               |
[INFO] [stderr]            59 |     chain_positions: Vec<(f32, f32)>,
[INFO] [stderr]               |                      ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/ik_solver.rs:60:13
[INFO] [stderr]               |
[INFO] [stderr]            60 |     target: (f32, f32),
[INFO] [stderr]               |             ^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/ik_solver.rs:61:14
[INFO] [stderr]               |
[INFO] [stderr]            61 |     lengths: Vec<f32>,
[INFO] [stderr]               |              ^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/ik_solver.rs:131:40
[INFO] [stderr]                |
[INFO] [stderr]            131 | pub fn compute_bone_lengths(positions: Vec<(f32, f32)>) -> Vec<f32> {
[INFO] [stderr]                |                                        ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/node_compiler.rs:273:44
[INFO] [stderr]                |
[INFO] [stderr]            273 | pub fn compile_node_graph(node_graph_json: &str) -> PyResult<String> {
[INFO] [stderr]                |                                            ^^^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]             --> src/slap_format.rs:7:27
[INFO] [stderr]              |
[INFO] [stderr]            7 | pub fn lz4_compress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stderr]              |                           ^^^^^ call to unsafe function
[INFO] [stderr]              |
[INFO] [stderr]              = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]              = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/slap_format.rs:15:29
[INFO] [stderr]               |
[INFO] [stderr]            15 | pub fn lz4_decompress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stderr]               |                             ^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/struct_layout.rs:21:33
[INFO] [stderr]               |
[INFO] [stderr]            21 | pub fn compute_layout(channels: Vec<(String, String)>) -> PyResult<HashMap<String, usize>> {
[INFO] [stderr]               |                                 ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/struct_layout.rs:47:42
[INFO] [stderr]               |
[INFO] [stderr]            47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stderr]               |                                          ^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/struct_layout.rs:47:58
[INFO] [stderr]               |
[INFO] [stderr]            47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stderr]               |                                                          ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 6 previous errors; 18 warnings emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0133`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:16
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn length(&self) -> f32 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn normalize(&self) -> Vec2 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                                        ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:35
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:47
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:59
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:80:21
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:31
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:37
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                                     ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn center(&self) -> Vec2 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn size(&self) -> Vec2 {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math.rs:73:1
[INFO] [stdout]     |
[INFO] [stdout]  73 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                   ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:34
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly dereference within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]   --> src/node_compiler.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                      ^ reference pattern not allowed when implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]   --> src/node_compiler.rs:53:18
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                  ^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]    = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|&(_, &deg)| deg == 0)
[INFO] [stdout]    |                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/node_compiler.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn compile_node_graph(node_graph_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/slap_format.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn lz4_compress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]   |                           ^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/slap_format.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn lz4_decompress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]    |                             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:21:33
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn compute_layout(channels: Vec<(String, String)>) -> PyResult<HashMap<String, usize>> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:42
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                          ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:48
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:59
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                           ^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:48
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:36
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:49
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                     ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn keys(&self) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:75:21
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:80:24
[INFO] [stdout]    |
[INFO] [stdout] 80 |         pub fn __add__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:84:24
[INFO] [stdout]    |
[INFO] [stdout] 84 |         pub fn __sub__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub fn __mul__(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:36
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                    ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 |         pub fn length(&self) -> f32 {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:43:26
[INFO] [stdout]    |
[INFO] [stdout] 43 |         pub fn normalize(&self) -> Vec3 {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:20
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:35
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub fn __neg__(&self) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:20:5
[INFO] [stdout]     |
[INFO] [stdout]  20 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:31
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:39
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:47
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:133:23
[INFO] [stdout]     |
[INFO] [stdout] 133 |         pub fn length(&self) -> f32 {
[INFO] [stdout]     |                       ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:137:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |         pub fn normalize(&self) -> Vec4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:151:25
[INFO] [stdout]     |
[INFO] [stdout] 151 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |         pub fn from_translation(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:221:30
[INFO] [stdout]     |
[INFO] [stdout] 221 |         pub fn from_scale(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:232:33
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn from_rotation(q: Quaternion) -> Mat4x4 {
[INFO] [stdout]     |                                 ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:20
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:34
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                                  ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:32
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:42
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                          ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:36
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:46
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |         pub fn transpose(&self) -> Mat4x4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:269:21
[INFO] [stdout]     |
[INFO] [stdout] 269 |         pub fn data(&self) -> Vec<f32> {
[INFO] [stdout]     |                     ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:279:25
[INFO] [stdout]     |
[INFO] [stdout] 279 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:408:24
[INFO] [stdout]     |
[INFO] [stdout] 408 |         pub fn __mul__(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:38
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:53
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:37
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:49
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:59
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:351:26
[INFO] [stdout]     |
[INFO] [stdout] 351 |         pub fn normalize(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:20
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:34
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                                  ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:376:26
[INFO] [stdout]     |
[INFO] [stdout] 376 |         pub fn conjugate(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         pub fn to_mat4(&self) -> Mat4x4 {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:412:25
[INFO] [stdout]     |
[INFO] [stdout] 412 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:27
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:36
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:58
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                                          ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                         ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:34
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:43
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:52
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:61
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:38
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:47
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:60
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:46
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                              ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:55
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:64
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:73
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:86
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:34
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:43
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:56
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:68
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:35
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:44
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:58
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:72
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:35
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:52
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:32
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:41
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:50
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:59
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:68
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:77
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:89
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                           ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:42
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:29
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:200:25
[INFO] [stdout]     |
[INFO] [stdout] 200 |         pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:232:20
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn add(&mut self, prim: &SdfPrimitive) {
[INFO] [stdout]     |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn add(&mut self, prim: &SdfPrimitive) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:236:22
[INFO] [stdout]     |
[INFO] [stdout] 236 |         pub fn clear(&mut self) {
[INFO] [stdout]     |                      ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:240:20
[INFO] [stdout]     |
[INFO] [stdout] 240 |         pub fn len(&self) -> usize {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |         pub fn to_gpu_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:253:25
[INFO] [stdout]     |
[INFO] [stdout] 253 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:104:26
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn new(mass: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:43
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:51
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:59
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:122:29
[INFO] [stdout]     |
[INFO] [stdout] 122 |         pub fn get_position(&self) -> (f32, f32, f32) {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:29
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:53
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:62
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                                                              ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:130:29
[INFO] [stdout]     |
[INFO] [stdout] 130 |         pub fn get_velocity(&self) -> (f32, f32, f32) {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:28
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:43
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:52
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:61
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:70
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:30
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:45
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:54
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:63
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:156:26
[INFO] [stdout]     |
[INFO] [stdout] 156 |         pub fn is_static(&self) -> bool {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:26
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                          ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:41
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:50
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:59
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:68
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:173:25
[INFO] [stdout]     |
[INFO] [stdout] 173 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:28
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:43
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:52
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:61
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:260:25
[INFO] [stdout]     |
[INFO] [stdout] 260 |         pub fn add_body(&mut self, body: &RigidBody) -> u32 {
[INFO] [stdout]     |                         ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:260:42
[INFO] [stdout]     |
[INFO] [stdout] 260 |         pub fn add_body(&mut self, body: &RigidBody) -> u32 {
[INFO] [stdout]     |                                          ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:272:28
[INFO] [stdout]     |
[INFO] [stdout] 272 |         pub fn remove_body(&mut self, handle: u32) {
[INFO] [stdout]     |                            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:272:47
[INFO] [stdout]     |
[INFO] [stdout] 272 |         pub fn remove_body(&mut self, handle: u32) {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:286:21
[INFO] [stdout]     |
[INFO] [stdout] 286 |         pub fn step(&mut self, dt: f32) -> Vec<(u32, u32)> {
[INFO] [stdout]     |                     ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:286:36
[INFO] [stdout]     |
[INFO] [stdout] 286 |         pub fn step(&mut self, dt: f32) -> Vec<(u32, u32)> {
[INFO] [stdout]     |                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:313:27
[INFO] [stdout]     |
[INFO] [stdout] 313 |         pub fn body_count(&self) -> usize {
[INFO] [stdout]     |                           ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:317:29
[INFO] [stdout]     |
[INFO] [stdout] 317 |         pub fn get_position(&self, handle: u32) -> Option<(f32, f32, f32)> {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:317:44
[INFO] [stdout]     |
[INFO] [stdout] 317 |         pub fn get_position(&self, handle: u32) -> Option<(f32, f32, f32)> {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:29
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:48
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:56
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:64
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:72
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |             &self,
[INFO] [stdout]     |             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:334:17
[INFO] [stdout]     |
[INFO] [stdout] 334 |             ox: f32, oy: f32, oz: f32,
[INFO] [stdout]     |                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:334:26
[INFO] [stdout]     |
[INFO] [stdout] 334 |             ox: f32, oy: f32, oz: f32,
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:334:35
[INFO] [stdout]     |
[INFO] [stdout] 334 |             ox: f32, oy: f32, oz: f32,
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 |             dx: f32, dy: f32, dz: f32,
[INFO] [stdout]     |                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:335:26
[INFO] [stdout]     |
[INFO] [stdout] 335 |             dx: f32, dy: f32, dz: f32,
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:335:35
[INFO] [stdout]     |
[INFO] [stdout] 335 |             dx: f32, dy: f32, dz: f32,
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:351:25
[INFO] [stdout]     |
[INFO] [stdout] 351 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:266:27
[INFO] [stdout]     |
[INFO] [stdout] 266 |         pub fn load_bytes(&mut self, data: Vec<u8>) {
[INFO] [stdout]     |                           ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:266:44
[INFO] [stdout]     |
[INFO] [stdout] 266 |         pub fn load_bytes(&mut self, data: Vec<u8>) {
[INFO] [stdout]     |                                            ^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:271:27
[INFO] [stdout]     |
[INFO] [stdout] 271 |         pub fn prim_count(&self) -> usize {
[INFO] [stdout]     |                           ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf_collision.rs:257:5
[INFO] [stdout]     |
[INFO] [stdout] 257 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:25
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:36
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:45
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:54
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:23
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                       ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:34
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:43
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:52
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |             &self,
[INFO] [stdout]     |             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:310:20
[INFO] [stdout]     |
[INFO] [stdout] 310 |             min_x: f32, min_y: f32, min_z: f32,
[INFO] [stdout]     |                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:310:32
[INFO] [stdout]     |
[INFO] [stdout] 310 |             min_x: f32, min_y: f32, min_z: f32,
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:310:44
[INFO] [stdout]     |
[INFO] [stdout] 310 |             min_x: f32, min_y: f32, min_z: f32,
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:311:20
[INFO] [stdout]     |
[INFO] [stdout] 311 |             max_x: f32, max_y: f32, max_z: f32,
[INFO] [stdout]     |                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:311:32
[INFO] [stdout]     |
[INFO] [stdout] 311 |             max_x: f32, max_y: f32, max_z: f32,
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:311:44
[INFO] [stdout]     |
[INFO] [stdout] 311 |             max_x: f32, max_y: f32, max_z: f32,
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:32
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:43
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:52
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:61
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:69
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:25
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:36
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:45
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:54
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `_core`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/hull.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convex_hull(points: Vec<(f32, f32)>) -> PyResult<Vec<(f32, f32)>> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]   = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/hull.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn bounding_box(points: Vec<(f32, f32)>) -> PyResult<(f32, f32, f32, f32)> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/ik_solver.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pixel_data: Vec<f32>,
[INFO] [stdout]    |                 ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/math.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pixel_count: usize,
[INFO] [stdout]    |                  ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/math_3d.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |     stride_floats: usize,
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/node_compiler.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |     channel_offset_f32: usize,
[INFO] [stdout]    |                         ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/physics.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 |     threshold: f32,
[INFO] [stdout]    |                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/sdf.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     width: usize,
[INFO] [stdout]    |            ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/sdf_collision.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |     chain_positions: Vec<(f32, f32)>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/slap_format.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     target: (f32, f32),
[INFO] [stdout]    |             ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/struct_layout.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |     lengths: Vec<f32>,
[INFO] [stdout]    |              ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/tile_cache.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/ik_solver.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn compute_bone_lengths(positions: Vec<(f32, f32)>) -> Vec<f32> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn __add__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/math.rs:12:1
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn __sub__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn __mul__(&self, scalar: f32) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            12 | { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:16
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn length(&self) -> f32 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn normalize(&self) -> Vec2 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/tile_cache.rs:11:1
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            11 | { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                                        ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:35
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:47
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:59
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:80:21
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/math_3d.rs:20:5
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:31
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            20 |     { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:37
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                                     ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |     ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn center(&self) -> Vec2 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn size(&self) -> Vec2 {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math.rs:73:1
[INFO] [stdout]     |
[INFO] [stdout]  73 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                   ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:34
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: cannot explicitly dereference within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]   --> src/node_compiler.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                      ^ reference pattern not allowed when implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]   --> src/node_compiler.rs:53:18
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                  ^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]    = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|&(_, &deg)| deg == 0)
[INFO] [stdout]    |                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/node_compiler.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn compile_node_graph(node_graph_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/sdf.rs:75:5
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/slap_format.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn lz4_compress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]   |                           ^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/slap_format.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn lz4_decompress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]    |                             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            75 |     { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:21:33
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn compute_layout(channels: Vec<(String, String)>) -> PyResult<HashMap<String, usize>> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |     ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:42
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                          ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:48
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/physics.rs:101:5
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:59
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                           ^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            101 |     { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |     ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:48
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:36
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:49
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                     ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/sdf_collision.rs:257:5
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn keys(&self) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            257 |     { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |     ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:75:21
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:80:24
[INFO] [stdout]    |
[INFO] [stdout] 80 |         pub fn __add__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:84:24
[INFO] [stdout]    |
[INFO] [stdout] 84 |         pub fn __sub__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub fn __mul__(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             --> src/hull.rs:6:28
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            6 | pub fn convex_hull(points: Vec<(f32, f32)>) -> PyResult<Vec<(f32, f32)>> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |                            ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:36
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                    ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 |         pub fn length(&self) -> f32 {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:43:26
[INFO] [stdout]    |
[INFO] [stdout] 43 |         pub fn normalize(&self) -> Vec3 {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:53:29
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:20
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            53 | pub fn bounding_box(points: Vec<(f32, f32)>) -> PyResult<(f32, f32, f32, f32)> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:35
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                             ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub fn __neg__(&self) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:20:5
[INFO] [stdout]     |
[INFO] [stdout]  20 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:31
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:39
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:47
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:92:17
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:133:23
[INFO] [stdout]     |
[INFO] [stdout] 133 |         pub fn length(&self) -> f32 {
[INFO] [stdout]     |                       ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            92 |     pixel_data: Vec<f32>,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:137:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |         pub fn normalize(&self) -> Vec4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                 ^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:151:25
[INFO] [stdout]     |
[INFO] [stdout] 151 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |         pub fn from_translation(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:221:30
[INFO] [stdout]     |
[INFO] [stdout] 221 |         pub fn from_scale(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:232:33
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn from_rotation(q: Quaternion) -> Mat4x4 {
[INFO] [stdout]     |                                 ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:20
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:34
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                                  ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:32
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:93:18
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:42
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                          ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:36
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            93 |     pixel_count: usize,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:46
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                  ^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |         pub fn transpose(&self) -> Mat4x4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:269:21
[INFO] [stdout]     |
[INFO] [stdout] 269 |         pub fn data(&self) -> Vec<f32> {
[INFO] [stdout]     |                     ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:279:25
[INFO] [stdout]     |
[INFO] [stdout] 279 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:408:24
[INFO] [stdout]     |
[INFO] [stdout] 408 |         pub fn __mul__(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:38
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:53
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:37
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:94:20
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:49
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:59
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            94 |     stride_floats: usize,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:351:26
[INFO] [stdout]     |
[INFO] [stdout] 351 |         pub fn normalize(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                    ^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:20
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:34
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                                  ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:376:26
[INFO] [stdout]     |
[INFO] [stdout] 376 |         pub fn conjugate(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         pub fn to_mat4(&self) -> Mat4x4 {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:412:25
[INFO] [stdout]     |
[INFO] [stdout] 412 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:27
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:36
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:95:25
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:58
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                                          ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            95 |     channel_offset_f32: usize,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                         ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                         ^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:34
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:43
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:52
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:61
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:38
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:96:16
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:47
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:60
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            96 |     threshold: f32,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                ^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:46
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                              ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:55
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:64
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:73
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:86
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/hull.rs:97:12
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:34
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            97 |     width: usize,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:43
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |            ^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:56
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:68
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:35
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:44
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:58
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:72
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/ik_solver.rs:59:22
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:35
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            59 |     chain_positions: Vec<(f32, f32)>,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                      ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:52
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:32
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:41
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:50
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:59
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:68
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:77
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/ik_solver.rs:60:13
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:89
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                           ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            60 |     target: (f32, f32),
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:42
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |             ^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:29
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:200:25
[INFO] [stdout]     |
[INFO] [stdout] 200 |         pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:232:20
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn add(&mut self, prim: &SdfPrimitive) {
[INFO] [stdout]     |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn add(&mut self, prim: &SdfPrimitive) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:236:22
[INFO] [stdout]     |
[INFO] [stdout] 236 |         pub fn clear(&mut self) {
[INFO] [stdout]     |                      ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/ik_solver.rs:61:14
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:240:20
[INFO] [stdout]     |
[INFO] [stdout] 240 |         pub fn len(&self) -> usize {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |         pub fn to_gpu_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            61 |     lengths: Vec<f32>,
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:253:25
[INFO] [stdout]     |
[INFO] [stdout] 253 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |              ^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:104:26
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn new(mass: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:43
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:51
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:59
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:122:29
[INFO] [stdout]     |
[INFO] [stdout] 122 |         pub fn get_position(&self) -> (f32, f32, f32) {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:29
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/ik_solver.rs:131:40
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:53
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            131 | pub fn compute_bone_lengths(positions: Vec<(f32, f32)>) -> Vec<f32> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:126:62
[INFO] [stdout]     |
[INFO] [stdout] 126 |         pub fn set_velocity(&mut self, vx: f32, vy: f32, vz: f32) {
[INFO] [stdout]     |                                                              ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                                        ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:130:29
[INFO] [stdout]     |
[INFO] [stdout] 130 |         pub fn get_velocity(&self) -> (f32, f32, f32) {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:28
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:43
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:52
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:61
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:135:70
[INFO] [stdout]     |
[INFO] [stdout] 135 |         pub fn apply_force(&mut self, fx: f32, fy: f32, fz: f32, dt: f32) {
[INFO] [stdout]     |                                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:30
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/node_compiler.rs:273:44
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:45
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:54
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            273 | pub fn compile_node_graph(node_graph_json: &str) -> PyResult<String> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:146:63
[INFO] [stdout]     |
[INFO] [stdout] 146 |         pub fn apply_impulse(&mut self, ix: f32, iy: f32, iz: f32) {
[INFO] [stdout]     |                                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                                            ^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:156:26
[INFO] [stdout]     |
[INFO] [stdout] 156 |         pub fn is_static(&self) -> bool {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:26
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                          ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:41
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:50
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:59
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:161:68
[INFO] [stdout]     |
[INFO] [stdout] 161 |         pub fn integrate(&mut self, gx: f32, gy: f32, gz: f32, dt: f32) {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:173:25
[INFO] [stdout]     |
[INFO] [stdout] 173 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             --> src/slap_format.rs:7:27
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:28
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:43
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            7 | pub fn lz4_compress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:52
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |                           ^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:255:61
[INFO] [stdout]     |
[INFO] [stdout] 255 |         pub fn set_gravity(&mut self, gx: f32, gy: f32, gz: f32) {
[INFO] [stdout]     |                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:260:25
[INFO] [stdout]     |
[INFO] [stdout] 260 |         pub fn add_body(&mut self, body: &RigidBody) -> u32 {
[INFO] [stdout]     |                         ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:260:42
[INFO] [stdout]     |
[INFO] [stdout] 260 |         pub fn add_body(&mut self, body: &RigidBody) -> u32 {
[INFO] [stdout]     |                                          ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:272:28
[INFO] [stdout]     |
[INFO] [stdout] 272 |         pub fn remove_body(&mut self, handle: u32) {
[INFO] [stdout]     |                            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:272:47
[INFO] [stdout]     |
[INFO] [stdout] 272 |         pub fn remove_body(&mut self, handle: u32) {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:286:21
[INFO] [stdout]     |
[INFO] [stdout] 286 |         pub fn step(&mut self, dt: f32) -> Vec<(u32, u32)> {
[INFO] [stdout]     |                     ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:286:36
[INFO] [stdout]     |
[INFO] [stdout] 286 |         pub fn step(&mut self, dt: f32) -> Vec<(u32, u32)> {
[INFO] [stdout]     |                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/slap_format.rs:15:29
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:313:27
[INFO] [stdout]     |
[INFO] [stdout] 313 |         pub fn body_count(&self) -> usize {
[INFO] [stdout]     |                           ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:317:29
[INFO] [stdout]     |
[INFO] [stdout] 317 |         pub fn get_position(&self, handle: u32) -> Option<(f32, f32, f32)> {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            15 | pub fn lz4_decompress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:317:44
[INFO] [stdout]     |
[INFO] [stdout] 317 |         pub fn get_position(&self, handle: u32) -> Option<(f32, f32, f32)> {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                             ^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:29
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:48
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:56
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:64
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:324:72
[INFO] [stdout]     |
[INFO] [stdout] 324 |         pub fn set_position(&mut self, handle: u32, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |             &self,
[INFO] [stdout]     |             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:334:17
[INFO] [stdout]     |
[INFO] [stdout] 334 |             ox: f32, oy: f32, oz: f32,
[INFO] [stdout]     |                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/struct_layout.rs:21:33
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:334:26
[INFO] [stdout]     |
[INFO] [stdout] 334 |             ox: f32, oy: f32, oz: f32,
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:334:35
[INFO] [stdout]     |
[INFO] [stdout] 334 |             ox: f32, oy: f32, oz: f32,
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            21 | pub fn compute_layout(channels: Vec<(String, String)>) -> PyResult<HashMap<String, usize>> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 |             dx: f32, dy: f32, dz: f32,
[INFO] [stdout]     |                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                                 ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:335:26
[INFO] [stdout]     |
[INFO] [stdout] 335 |             dx: f32, dy: f32, dz: f32,
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:335:35
[INFO] [stdout]     |
[INFO] [stdout] 335 |             dx: f32, dy: f32, dz: f32,
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:351:25
[INFO] [stdout]     |
[INFO] [stdout] 351 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:266:27
[INFO] [stdout]     |
[INFO] [stdout] 266 |         pub fn load_bytes(&mut self, data: Vec<u8>) {
[INFO] [stdout]     |                           ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:266:44
[INFO] [stdout]     |
[INFO] [stdout] 266 |         pub fn load_bytes(&mut self, data: Vec<u8>) {
[INFO] [stdout]     |                                            ^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:271:27
[INFO] [stdout]     |
[INFO] [stdout] 271 |         pub fn prim_count(&self) -> usize {
[INFO] [stdout]     |                           ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf_collision.rs:257:5
[INFO] [stdout]     |
[INFO] [stdout] 257 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:25
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/struct_layout.rs:47:42
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:36
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:45
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:280:54
[INFO] [stdout]     |
[INFO] [stdout] 280 |         pub fn distance(&self, px: f32, py: f32, pz: f32) -> f32 {
[INFO] [stdout]     |                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                                          ^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:23
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                       ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:34
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:43
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:290:52
[INFO] [stdout]     |
[INFO] [stdout] 290 |         pub fn normal(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |             &self,
[INFO] [stdout]     |             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:310:20
[INFO] [stdout]     |
[INFO] [stdout] 310 |             min_x: f32, min_y: f32, min_z: f32,
[INFO] [stdout]     |                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:310:32
[INFO] [stdout]     |
[INFO] [stdout] 310 |             min_x: f32, min_y: f32, min_z: f32,
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/struct_layout.rs:47:58
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:310:44
[INFO] [stdout]     |
[INFO] [stdout] 310 |             min_x: f32, min_y: f32, min_z: f32,
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:311:20
[INFO] [stdout]     |
[INFO] [stdout] 311 |             max_x: f32, max_y: f32, max_z: f32,
[INFO] [stdout]     |                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:311:32
[INFO] [stdout]     |
[INFO] [stdout] 311 |             max_x: f32, max_y: f32, max_z: f32,
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                                                          ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:311:44
[INFO] [stdout]     |
[INFO] [stdout] 311 |             max_x: f32, max_y: f32, max_z: f32,
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:32
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:43
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:52
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:61
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:341:69
[INFO] [stdout]     |
[INFO] [stdout] 341 |         pub fn sphere_overlaps(&self, cx: f32, cy: f32, cz: f32, r: f32) -> bool {
[INFO] [stdout]     |                                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: aborting due to 6 previous errors; 18 warnings emitted
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:25
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:36
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:45
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf_collision.rs:350:54
[INFO] [stdout]     |
[INFO] [stdout] 350 |         pub fn push_out(&self, px: f32, py: f32, pz: f32) -> (f32, f32, f32) {
[INFO] [stdout]     |                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.94s
[INFO] [stderr] crater-edition-check: slappyengine v0.3.0-alpha.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking slappyengine v0.3.0-alpha.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/hull.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convex_hull(points: Vec<(f32, f32)>) -> PyResult<Vec<(f32, f32)>> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]   = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn bounding_box(points: Vec<(f32, f32)>) -> PyResult<(f32, f32, f32, f32)> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pixel_data: Vec<f32>,
[INFO] [stdout]    |                 ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pixel_count: usize,
[INFO] [stdout]    |                  ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |     stride_floats: usize,
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |     channel_offset_f32: usize,
[INFO] [stdout]    |                         ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 |     threshold: f32,
[INFO] [stdout]    |                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     width: usize,
[INFO] [stdout]    |            ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/hull.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn convex_hull(points: Vec<(f32, f32)>) -> PyResult<Vec<(f32, f32)>> {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]   = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn bounding_box(points: Vec<(f32, f32)>) -> PyResult<(f32, f32, f32, f32)> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |     chain_positions: Vec<(f32, f32)>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     target: (f32, f32),
[INFO] [stdout]    |             ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |     lengths: Vec<f32>,
[INFO] [stdout]    |              ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/ik_solver.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn compute_bone_lengths(positions: Vec<(f32, f32)>) -> Vec<f32> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pixel_data: Vec<f32>,
[INFO] [stdout]    |                 ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pixel_count: usize,
[INFO] [stdout]    |                  ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |     stride_floats: usize,
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |     channel_offset_f32: usize,
[INFO] [stdout]    |                         ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 |     threshold: f32,
[INFO] [stdout]    |                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hull.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     width: usize,
[INFO] [stdout]    |            ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn __add__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn __sub__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn __mul__(&self, scalar: f32) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:16
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |     chain_positions: Vec<(f32, f32)>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     target: (f32, f32),
[INFO] [stdout]    |             ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/ik_solver.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |     lengths: Vec<f32>,
[INFO] [stdout]    |              ^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn length(&self) -> f32 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn normalize(&self) -> Vec2 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/ik_solver.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn compute_bone_lengths(positions: Vec<(f32, f32)>) -> Vec<f32> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                                        ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn __add__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:35
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn __sub__(&self, other: Vec2) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:47
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:59
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn __mul__(&self, scalar: f32) -> Vec2 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:80:21
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:31
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:37
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                                     ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn center(&self) -> Vec2 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn size(&self) -> Vec2 {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math.rs:73:1
[INFO] [stdout]     |
[INFO] [stdout]  73 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:16
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn dot(&self, other: Vec2) -> f32 {
[INFO] [stdout]    |                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                   ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:34
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn length(&self) -> f32 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn normalize(&self) -> Vec2 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn lerp(&self, other: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |                                        ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:35
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:47
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:76:59
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn new(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |                                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:80:21
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn __repr__(&self) -> String {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:84:31
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]    |                               ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:88:37
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn intersects(&self, other: AABB) -> bool {
[INFO] [stdout]    |                                     ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn center(&self) -> Vec2 {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly dereference within an implicitly-borrowing pattern
[INFO] [stdout]   --> src/node_compiler.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                      ^ reference pattern not allowed when implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]   --> src/node_compiler.rs:53:18
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                  ^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|&(_, &deg)| deg == 0)
[INFO] [stdout]    |                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn size(&self) -> Vec2 {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math.rs:73:1
[INFO] [stdout]     |
[INFO] [stdout]  73 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                   ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math.rs:109:34
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn expand(&self, amount: f32) -> AABB {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/node_compiler.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn compile_node_graph(node_graph_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/slap_format.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn lz4_compress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]   |                           ^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/slap_format.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn lz4_decompress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]    |                             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:21:33
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn compute_layout(channels: Vec<(String, String)>) -> PyResult<HashMap<String, usize>> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly dereference within an implicitly-borrowing pattern
[INFO] [stdout]   --> src/node_compiler.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                      ^ reference pattern not allowed when implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]   --> src/node_compiler.rs:53:18
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|(_, &deg)| deg == 0)
[INFO] [stdout]    |                  ^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .filter(|&(_, &deg)| deg == 0)
[INFO] [stdout]    |                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:42
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                          ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:48
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:59
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                           ^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:48
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:36
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:49
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                     ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/node_compiler.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn compile_node_graph(node_graph_json: &str) -> PyResult<String> {
[INFO] [stdout]     |                                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn keys(&self) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:75:21
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]  --> src/slap_format.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn lz4_compress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]   |                           ^^^^^ call to unsafe function
[INFO] [stdout]   |
[INFO] [stdout]   = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/slap_format.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn lz4_decompress(data: &[u8]) -> PyResult<Vec<u8>> {
[INFO] [stdout]    |                             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:21:33
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn compute_layout(channels: Vec<(String, String)>) -> PyResult<HashMap<String, usize>> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:80:24
[INFO] [stdout]    |
[INFO] [stdout] 80 |         pub fn __add__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:84:24
[INFO] [stdout]    |
[INFO] [stdout] 84 |         pub fn __sub__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub fn __mul__(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:42
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                          ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/struct_layout.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn generate_wgsl_struct(struct_name: &str, channels: Vec<(String, String)>) -> PyResult<String> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:36
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                    ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 |         pub fn length(&self) -> f32 {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:48
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:43:26
[INFO] [stdout]    |
[INFO] [stdout] 43 |         pub fn normalize(&self) -> Vec3 {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:23:59
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put(&mut self, tile_x: i32, tile_y: i32, data: Vec<u8>) -> Option<(i32, i32)> {
[INFO] [stdout]    |                                                           ^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:20
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:41:48
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn get(&mut self, tile_x: i32, tile_y: i32) -> Option<Vec<u8>> {
[INFO] [stdout]    |                                                ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:35
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub fn __neg__(&self) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:36
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:20:5
[INFO] [stdout]     |
[INFO] [stdout]  20 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:53:49
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn contains(&self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                     ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn evict(&mut self, tile_x: i32, tile_y: i32) -> bool {
[INFO] [stdout]    |                                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn keys(&self) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:75:21
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]    |                     ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/tile_cache.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/tile_cache.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:31
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:39
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:47
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:133:23
[INFO] [stdout]     |
[INFO] [stdout] 133 |         pub fn length(&self) -> f32 {
[INFO] [stdout]     |                       ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:137:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |         pub fn normalize(&self) -> Vec4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:151:25
[INFO] [stdout]     |
[INFO] [stdout] 151 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:80:24
[INFO] [stdout]    |
[INFO] [stdout] 80 |         pub fn __add__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:84:24
[INFO] [stdout]    |
[INFO] [stdout] 84 |         pub fn __sub__(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub fn __mul__(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                               ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                                       ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |         pub fn from_translation(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:221:30
[INFO] [stdout]     |
[INFO] [stdout] 221 |         pub fn from_scale(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:232:33
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn from_rotation(q: Quaternion) -> Mat4x4 {
[INFO] [stdout]     |                                 ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub fn dot(&self, other: Vec3) -> f32 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                      ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:20
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:31:36
[INFO] [stdout]    |
[INFO] [stdout] 31 |         pub fn cross(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                    ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:34
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                                  ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:32
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:42
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                          ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 |         pub fn length(&self) -> f32 {
[INFO] [stdout]    |                       ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:43:26
[INFO] [stdout]    |
[INFO] [stdout] 43 |         pub fn normalize(&self) -> Vec3 {
[INFO] [stdout]    |                          ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:36
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:46
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |         pub fn add(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |         pub fn transpose(&self) -> Mat4x4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:269:21
[INFO] [stdout]     |
[INFO] [stdout] 269 |         pub fn data(&self) -> Vec<f32> {
[INFO] [stdout]     |                     ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |         pub fn sub(&self, other: Vec3) -> Vec3 {
[INFO] [stdout]    |                                  ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:279:25
[INFO] [stdout]     |
[INFO] [stdout] 279 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:20
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:72:35
[INFO] [stdout]    |
[INFO] [stdout] 72 |         pub fn mul(&self, scalar: f32) -> Vec3 {
[INFO] [stdout]    |                                   ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/math_3d.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub fn __neg__(&self) -> Vec3 {
[INFO] [stdout]    |                        ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/math_3d.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[pymethods]
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:20:5
[INFO] [stdout]     |
[INFO] [stdout]  20 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:408:24
[INFO] [stdout]     |
[INFO] [stdout] 408 |         pub fn __mul__(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:38
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:53
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:37
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:49
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:59
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:31
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:351:26
[INFO] [stdout]     |
[INFO] [stdout] 351 |         pub fn normalize(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:39
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:20
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:125:47
[INFO] [stdout]     |
[INFO] [stdout] 125 |         pub fn new(x: f32, y: f32, z: f32, w: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:34
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                                  ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:376:26
[INFO] [stdout]     |
[INFO] [stdout] 376 |         pub fn conjugate(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         pub fn dot(&self, other: Vec4) -> f32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         pub fn to_mat4(&self) -> Mat4x4 {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:412:25
[INFO] [stdout]     |
[INFO] [stdout] 412 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:133:23
[INFO] [stdout]     |
[INFO] [stdout] 133 |         pub fn length(&self) -> f32 {
[INFO] [stdout]     |                       ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:137:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |         pub fn normalize(&self) -> Vec4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:151:25
[INFO] [stdout]     |
[INFO] [stdout] 151 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |         pub fn from_translation(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:221:30
[INFO] [stdout]     |
[INFO] [stdout] 221 |         pub fn from_scale(v: Vec3) -> Mat4x4 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:232:33
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn from_rotation(q: Quaternion) -> Mat4x4 {
[INFO] [stdout]     |                                 ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:20
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:27
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:237:34
[INFO] [stdout]     |
[INFO] [stdout] 237 |         pub fn mul(&self, other: Mat4x4) -> Mat4x4 {
[INFO] [stdout]     |                                  ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:36
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:58
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                                          ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:32
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:242:42
[INFO] [stdout]     |
[INFO] [stdout] 242 |         pub fn transform_point(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                          ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                         ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:36
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:250:46
[INFO] [stdout]     |
[INFO] [stdout] 250 |         pub fn transform_direction(&self, v: Vec3) -> Vec3 {
[INFO] [stdout]     |                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:34
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:43
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:52
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:61
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:38
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:47
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:60
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |         pub fn transpose(&self) -> Mat4x4 {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:46
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                              ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:55
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:64
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:73
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:86
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:269:21
[INFO] [stdout]     |
[INFO] [stdout] 269 |         pub fn data(&self) -> Vec<f32> {
[INFO] [stdout]     |                     ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:279:25
[INFO] [stdout]     |
[INFO] [stdout] 279 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:408:24
[INFO] [stdout]     |
[INFO] [stdout] 408 |         pub fn __mul__(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:38
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:34
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:321:53
[INFO] [stdout]     |
[INFO] [stdout] 321 |         pub fn from_axis_angle(axis: Vec3, radians: f32) -> Quaternion {
[INFO] [stdout]     |                                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:37
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:43
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:49
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                 ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:335:59
[INFO] [stdout]     |
[INFO] [stdout] 335 |         pub fn from_euler_xyz(roll: f32, pitch: f32, yaw: f32) -> Quaternion {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:56
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:351:26
[INFO] [stdout]     |
[INFO] [stdout] 351 |         pub fn normalize(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:68
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:20
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:366:34
[INFO] [stdout]     |
[INFO] [stdout] 366 |         pub fn mul(&self, other: Quaternion) -> Quaternion {
[INFO] [stdout]     |                                  ^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:376:26
[INFO] [stdout]     |
[INFO] [stdout] 376 |         pub fn conjugate(&self) -> Quaternion {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         pub fn to_mat4(&self) -> Mat4x4 {
[INFO] [stdout]     |                        ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/math_3d.rs:412:25
[INFO] [stdout]     |
[INFO] [stdout] 412 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/math_3d.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:35
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:44
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:58
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:72
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:35
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:52
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:32
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:41
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:50
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:59
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:68
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:77
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:89
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                           ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:42
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:29
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:200:25
[INFO] [stdout]     |
[INFO] [stdout] 200 |         pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:27
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:36
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:232:20
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn add(&mut self, prim: &SdfPrimitive) {
[INFO] [stdout]     |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |         pub fn add(&mut self, prim: &SdfPrimitive) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:78:58
[INFO] [stdout]    |
[INFO] [stdout] 78 |         pub fn sphere(cx: f32, cy: f32, cz: f32, radius: f32) -> Self {
[INFO] [stdout]    |                                                          ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:236:22
[INFO] [stdout]     |
[INFO] [stdout] 236 |         pub fn clear(&mut self) {
[INFO] [stdout]     |                      ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:240:20
[INFO] [stdout]     |
[INFO] [stdout] 240 |         pub fn len(&self) -> usize {
[INFO] [stdout]     |                    ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                         ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:34
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                  ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:43
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:52
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                    ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:61
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                             ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/sdf.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub fn box_(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32) -> Self {
[INFO] [stdout]    |                                                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |         pub fn to_gpu_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:253:25
[INFO] [stdout]     |
[INFO] [stdout] 253 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:38
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:47
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                               ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:60
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn cylinder(cx: f32, cy: f32, cz: f32, height: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:46
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                              ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:55
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:64
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:73
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:119:86
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn capsule(ax: f32, ay: f32, az: f32, bx: f32, by: f32, bz: f32, radius: f32) -> Self {
[INFO] [stdout]     |                                                                                      ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:34
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:43
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:56
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:136:68
[INFO] [stdout]     |
[INFO] [stdout] 136 |         pub fn cone(cx: f32, cy: f32, cz: f32, height: f32, angle: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:35
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:44
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:58
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:149:72
[INFO] [stdout]     |
[INFO] [stdout] 149 |         pub fn torus(cx: f32, cy: f32, cz: f32, r_major: f32, r_minor: f32) -> Self {
[INFO] [stdout]     |                                                                        ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:104:26
[INFO] [stdout]     |
[INFO] [stdout] 104 |         pub fn new(mass: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:35
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                            ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:164:52
[INFO] [stdout]     |
[INFO] [stdout] 164 |         pub fn plane(nx: f32, ny: f32, nz: f32, d: f32) -> Self {
[INFO] [stdout]     |                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:32
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:41
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:50
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:59
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:68
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                    ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:77
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                             ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:177:89
[INFO] [stdout]     |
[INFO] [stdout] 177 |         pub fn rounded_box(cx: f32, cy: f32, cz: f32, hx: f32, hy: f32, hz: f32, round: f32) -> Self {
[INFO] [stdout]     |                                                                                         ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                           ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:191:42
[INFO] [stdout]     |
[INFO] [stdout] 191 |         pub fn set_csg_op(&mut self, op: u32) {
[INFO] [stdout]     |                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:29
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 |         pub fn set_smooth_k(&mut self, k: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:200:25
[INFO] [stdout]     |
[INFO] [stdout] 200 |         pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sdf.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |         pub fn __repr__(&self) -> String {
[INFO] [stdout]     |                         ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sdf.rs:75:5
[INFO] [stdout]     |
[INFO] [stdout]  75 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:43
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:51
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                   ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:118:59
[INFO] [stdout]     |
[INFO] [stdout] 118 |         pub fn set_position(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                                           ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/physics.rs:122:29
[INFO] [stdout]     |
[INFO] [stdout] 122 |         pub fn get_position(&self) -> (f32, f32, f32) {
[INFO] [stdout]     |                             ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/physics.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     #[pymethods]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[WARN] too many lines in the log, truncating it
